var common = require("../../common/common.js");
var commonImage = require("../../common/commonImage.js");

var dy = {};
var appName = '抖音极速版'

dy.openApp = function() {
    console.log('---打开抖音---' + appName)
    var open = common.openApp(appName)
    console.log('---打开抖音结果---' + open)
}
dy.activeMoney = function() {
    dy.openApp()
    if (!dy.reOpenActive()) {
        console.log('---打开抖音赚金币失败---')
        return false
    }
    console.log("打开活动页面成功☺☺☺")
    console.log("赚钱任务" + textContains("赚钱任务").exists())
    console.log("消息" + textContains("消息").exists())
    console.log("金币收益" + textContains("金币收益").exists())
    console.log("限时享" + textContains("限时享").exists())
    console.log("连续签到" + textContains("连续签到").exists())
    console.log("开宝箱" + textContains("开宝箱").exists())
    dy.executeSignPopUp()
    dy.executeSign()
    dy.executeTreasureChest()
    dy.executeAd()
    // ks.executeVideo()
}

dy.openActive = function() {
    console.log('---点击【赚钱】---')
    var res = false
    var money_bouds = common.findBoundsForReferenceLine('首页', 1, 0, 1).clickable().findOne();
    if (money_bouds) {
        res = money_bouds.click();
        common.sleep(10000)
        console.log('---点击【赚钱】结果---' + res)
    }
    return res
}

dy.reOpenActive = function() {
    var res = false
    // 重新打开活动页面
    while (true) {
        if (textContains("首页").exists() && textContains("消息").exists()  && textContains("推荐").exists()) {
            console.log('【reOpenActive】[位置]首页')
            click("首页")
            common.sleep(3000)
            res = dy.openActive()
            break
        } else {
            console.log('【reOpenActive】返回')
            back()
            common.sleep(4000)
            dy.openApp()
        }
    }
    return res
}

dy.executeSign = function() {
    console.log('【签到】开始执行---')
    // 检测是否有连续签到弹窗
    var res = false
    var sign_desc = '去签到'
    if (textContains(sign_desc).exists()) {
        dy.executeSignPopUp()
    }
    console.log('【签到】结果:' + (res ? '成功  --￥￥' : '失败'))
}
dy.executeSignPopUp = function() {
    console.log('【签到弹窗】开始执行---')
    // 检测是否有连续签到弹窗
    var res = false
    var sign_desc = '签到领'
    if (textContains(sign_desc).exists()) {
        textContains(sign_desc).click()
        console.log('【签到弹窗】获取金币:成功  --￥￥')
        back()
    }
    console.log('【签到弹窗】结果:' + (res ? '成功  --￥￥' : '失败'))
}
dy.executeTreasureChest = function() {
    // todo 弹窗检测不到
    console.log('【开宝箱】开始执行---')
    mc = '开宝箱得金币'
    if (textContains(mc).exists()) {
        textContains(mc).click()
        console.log('【开宝箱】成功 --￥￥')
        back()
    }
    mc = '点击领'
    if (textContains(mc).exists()) {
        textContains(mc).click()
        console.log('【开宝箱】成功 --￥￥')
        back()
    }
    commonImage.findImageAndClick("./img/dy/treasure_chest.jpg")
    return true;
}

dy.executeAd = function() {
    console.log('【看广告】开始')
    var mc = "完成一次广告任务"
    var continuity_fail = 0
    for (var i = 0; i < 3; i++) {
        if (textContains(mc).exists()) {
            continuity_fail = 0
            textContains(mc).click()
            console.log('【看广告】正在播放广告：' + i)
            adWaiting()
        } else {
            continuity_fail += 1
            console.log('【看广告】失败, 不可以点击：' + i)
            common.sleep(2000)
        }
        if (continuity_fail >= 3) {
            console.log('【看广告】连续失败3次，重新打开活动界面')
            dy.reOpenActive()
        }
    }
    console.log('【看广告】结束')
}

function adWaiting() {
    var timeout = 35000
    common.sleep(timeout)
    console.log('【看广告】获取金币成功--￥￥')
    // 返回赚钱页面
    back()
    // 再次检查
    adNext()
}
function adNext() {
    common.sleep(2000)
    console.log('【看广告】检查--下一个视频--开始')
    // 检查 -- 下一个视频
    if (textContains("领取奖励").exists()) {
        console.log('【看广告】检查--再看一个')
        textContains("领取奖励").click()
        adWaiting()
    }
    // 检查 -- 恭喜累计获得
    if (textContains("恭喜累计获得").exists()) {
        console.log('【看广告】检查--恭喜累计获得')
        textContains("评价并收下金币").click()
        return
    }
    console.log('【看广告】检查--[结束] END')
}

dy.executeVideo = function() {
    console.log('【看视频】')
    var mc = "^看指定视频.*金币$"
    var timeout = 35000
    if (textMatches(mc).exists() && textMatches(mc).click()) {
        console.log('【看视频】正在播放广告')
        sleep(timeout)
        console.log('【看视频】获取金币成功')
        // 关闭弹窗
        back()
    } else {
        console.log('【看视频】失败, 不可以点击')
    }
}

module.exports = dy;